"""
样例数据
"""

import random

from faker import Faker

from my_typing import *
from utils.data_utils.special import ObjectIdStr

fake: Faker = Faker("zh_CN")
""" Fake 假数据实例（区域为：中国） """


class Demo:
    """ 样例 """

    id: ObjectIdStr = ObjectIdStr()
    """ MongoDB 的 ObjectId 字符串 """

    request_id: str = "_".join(
        (
            str(ObjectIdStr()),
            str(random.randint(0, 999)).zfill(3),
        )
    )
    """ 请求 ID """

    name: str = fake.name()
    """ 姓名 """

    ip: str = fake.ipv4_public()
    """ IP 地址 """

    port = fake.port_number()
    """ 端口号 """

    status_code: int = fake.http_status_code()
    """ HTTP 状态码 """

    date_str: str = str(date.today())
    """ 日期字符串 """

    dt_str_full: str = str(datetime.now())
    """ 请求时间 | 23 位"""

    dt_str: str = dt_str_full[0:19]
    """ 请求时间 | 19 位"""

    img_fullname: str = fake.file_name(category="image", extension="jpg")
    """ 图片全称 | 星空.jpg """

    img_name: str = img_fullname.split(".")[0]
    """ 图片名称 | 星空 """

    img_content_type: str = "image/jpeg"
    """ 图片内容类型 | image/jpeg """


if __name__ == "__main__":
    from devtools import debug

    debug(Demo.__dict__)
